Enterprise class storage arrays include multiple data storage pools for storing data. Each pool has finite capacity and performance capabilities. A “cache write pending” condition occurs when a storage pool is not adequately sized for a given workload and the data received in the storage controller's cache is not able to de-stage quickly enough to the undersized storage pool media. A Server Priority Manager controls how fast a server can communicate with the storage array by inserting commands into the fiber channel conversation. For example, the Server Priority Manager may insert a small computer system interface (SCSI) “wait” statement to slow down a conversation, though doing so results in a large amount of latency in the conversation. For more extreme cases, storage arrays include a self-protect function that sends an offline sequence to multiple storage area network (SAN) fiber channel connection ports to effectively stop the servers from sending more data. This is a disruptive last resort to give the backend storage pool time to commit pending data which is accumulating in cache. However, there may be other servers connected to the storage array via the same fiber channel connection ports, and these other servers will also suffer outages because of the backup due to, e.g., a bad or improperly sized job.